# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: BlackIkeEagle <ike DOT devolder AT gmail DOT com>
# Contributor: Valeriy Lyasotskiy <onestep@ukr.net>
# Contributor: Jan Willemson <janwil@hot.ee>
# Contributor: Hugo Ideler <hugoideler@dse.nl>
# Original PKGBUILD: Andre Naumann <anaumann@SPARCed.org>
# See http://bbs.archlinux.org/viewtopic.php?t=9318&highlight=fpc

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - link ppcarm/ppca64 to /usr/bin
#  - build for armhf on v6/v7
#  - comment adding lto to cflags

pkgname=fpc
pkgver=3.2.2
pkgrel=11
pkgdesc="Free Pascal Compiler, Turbo Pascal 7.0 and Delphi compatible."
arch=('x86_64')
url="http://www.freepascal.org/"
license=('GPL' 'LGPL' 'custom')
backup=("etc/fpc.cfg")
depends=('ncurses' 'zlib' 'expat' 'binutils' 'make')
makedepends=(fpc)
options=(zipman libtool staticlibs !lto)
validpgpkeys=('F40ADB902B24264AA42E50BF92EDB04BFF325CF3')
source=("https://downloads.sourceforge.net/project/freepascal/Source/${pkgver}/fpcbuild-${pkgver}.tar.gz"
        honor_SOURCE_DATE_EPOCH_in_date.patch
        prevent_date_in_fpcdocs.patch)
sha512sums=('75889bb54adc70a6e2cbd291476b9b12d61c8f943a05b7d16d2024de3215c935465ff43b1400c412e128e260c7f49a9c66e35c21f86cb866e671b5b60a282d82'
            'a2261628760e85fc0a8f427b56b6054b9bd2b3641bd5c1a9e757a4d0c307162c8cce84c4623789606bddf14f4a010fd6f3020c38928d8e8825b05e6f7e390fa1'
            '26c036ba37982881ce9ae318e32b0ccdda54a6e477dbb54953b2f64dec2ff5a484282558da821d8ec43d7616593d8482813b42623acc7b4655f739b82aa3834f')

prepare() {
  cd "${srcdir}"/fpcbuild-${pkgver}
  patch -Np1 -i "${srcdir}"/honor_SOURCE_DATE_EPOCH_in_date.patch
  patch -Np1 -i "${srcdir}"/prevent_date_in_fpcdocs.patch
}

build() {
  cd "${srcdir}"/fpcbuild-${pkgver}
  #export CFLAGS="$CFLAGS -ffat-lto-objects"
  [[ $CARCH == "armv7h" ]] && EXTRA="OPT=-dFPC_ARMHF"
  pushd fpcsrc/compiler
  fpcmake -Tall
  popd
  make build ${EXTRA}
}

package() {
  cd "${srcdir}"/fpcbuild-${pkgver}

  export HOME="${srcdir}"

  make -j1 PREFIX="${pkgdir}"/usr NO_MAN_COMPRESS=1 install

  export PATH="${pkgdir}"/usr/bin:$PATH

  install -Dm0644 fpcsrc/rtl/COPYING.FPC "${pkgdir}"/usr/share/licenses/${pkgname}/COPYING.FPC

  [ "$CARCH" = "x86_64" ] && ln -s /usr/lib/fpc/${pkgver}/ppcx64 "${pkgdir}"/usr/bin/
  [ "$CARCH" = "arm" -o "$CARCH" = "armv6h" -o "$CARCH" = "armv7h" ] && ln -s /usr/lib/fpc/${pkgver}/ppcarm "${pkgdir}"/usr/bin/
  [ "$CARCH" = "aarch64" ] && ln -s /usr/lib/fpc/${pkgver}/ppca64 "${pkgdir}"/usr/bin/

  mkdir -p "${pkgdir}"/etc
  "${pkgdir}"/usr/lib/fpc/${pkgver}/samplecfg "${pkgdir}"/usr/lib/fpc/${pkgver} "${pkgdir}"/etc
  "${pkgdir}"/usr/lib/fpc/${pkgver}/samplecfg "/usr/lib/fpc/${pkgver}" "${pkgdir}"/etc
  cp "${srcdir}/.fp/fp."{cfg,ini} "${pkgdir}/usr/lib/fpc/${pkgver}/ide/text/"

  # use -fPIC by default
  echo -e "#ifdef cpux86_64\n# for x86_64 use -fPIC by default\n-Cg\n#endif" >> "${pkgdir}/etc/fpc.cfg"

  mv "${pkgdir}"/usr/man "${pkgdir}"/usr/share/

  find "${pkgdir}"/etc/ -type f -exec sed -i "s|"${pkgdir}"||g" {} \;
}
